import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class ContainerClassWork {
 
	public static void main(String[] args) {
		//Дан массив с числами.
 
		int[] array = {1, 2, 3, 1, 4, 5, 4, 6, 6, 6, 6, 6, 6, 6, 6};
 
		//1.
		//Создать список, в который будут помещены числа из массива.
		//Если число делится на 3, то его в список включать не надо.
		//Выведите список на экран.
 
		List<Integer> list = new ArrayList<Integer>();
		
		for(int i = 0; i < array.length; i++){
			int num = array[i];
			
			if(num % 3 != 0){
				list.add(num);
			}
		}
		
		System.out.println("List: ");
		for(Integer i : list){
			System.out.println(" " + i);
		}
		System.out.println("\n");
 
		//2.		
		//Проверьте список на наличие чисел от 1 до 10.
		//Создайте Map, куда необходимо поместить пары: <Число, принадлежащее [1, 10] / Факт наличия числа в листе>
		//Выведите карту на экран.
 
		Map<Integer, Boolean> map = new HashMap<Integer, Boolean>();
		
		for(int i = 1; i <= 10; i++){
			boolean isInList = list.contains(i);
			map.put(i, isInList);
		}
		
		System.out.println("Map: ");
		for(Map.Entry<Integer, Boolean> pair : map.entrySet()){
			System.out.println("\tNumber " + pair.getKey() + " " + (pair.getValue() ? "is" : "is not") + " in the list");
		}
 
		//3.		
		//Сколько чисел и какие (порядок на важен) содержатся в массиве?
		//Лучше всего для этих использовать подходит Set.
		//Выведите множество на экран.
 
		Set<Integer> set = new HashSet<Integer>();
		
		for(int i = 0; i < array.length; i++){
			set.add(array[i]);
		}
		
		System.out.println("Set: ");
		for(Integer i : set){
			System.out.println(" " + i);
		}
		System.out.println("\n");
		
		System.out.println(set.size() + " numbers in the array");
		
	}
 
}